#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>
//以存储对象类型为int为例(实际往往是某些类）
typedef int StackData;
typedef struct Stack
{
	StackData* Base;//只保存数组头指针
	int capacity;
	StackData* top;//规定指向数组的最后一位的下一位（方便计算），因为栈的特性命名为top
	//int top;//或者直接使用top做下标使用 更容易理解与计算size
}ST;
void StackInit(ST* s);
void StackDestory(ST* s);
StackData StackTop(ST* s);
void StcakPush(ST* s, StackData data);
StackData StackPop(ST* s);
bool StackEmpty(ST* s);
int StackSize(ST* s);
int StackCapacity(ST* s);

